/*
基础数据类型
1. boolean
2. number
3. string
4. null和undefined
5. 数组
6. 元组(Tuple)
7. 枚举(enum)
8. any
9. void
10. object
*/
(function () {
    // 1. boolean
    var isDone = false;
    isDone = true;
    // isDone = 'abc'  // error
    // 2. number
    var age = 18;
    // age = true  // error
    // 3. string
    var name = 'atguigu';
    // name = 23  // error
    var info = "\u6211\u53EB" + name + ", \u4ECA\u5E74" + age;
    // 4. null和undefined    null和undefined是任意类型的子类型
    var n = null;
    // n = 'null' // error
    var u = undefined;
    // u = 13 // error
    info = null;
    info = undefined;
    // 5. 数组
    var list1 = [2, 5 /* , 'true', true */];
    var list2 = [3, 6.1234];
    list2[1].toFixed(2);
    // 6. 元组(Tuple)   个数和类型确定的数组
    var ts;
    ts = ['abc', 12];
    // 7. 枚举(enum)
    var Color;
    (function (Color) {
        Color[Color["RED"] = 1] = "RED";
        Color[Color["GREEN"] = 2] = "GREEN";
        Color[Color["BLUE"] = 3] = "BLUE";
    })(Color || (Color = {}));
    var color = Color.GREEN;
    console.log(color);
    console.log(Color);
    // 8. any
    var list3 = [123, 'abc', true];
    // list3[1].
    // 9. void  一般用来声明函数没有返回值
    function fn() {
        // return 3  // error
        // return null
        // return undefined
    }
    // 10. object
    function fn2() {
        // return {}
        // return []
        // return () => {}
        // return 1 // error
        return null;
    }
})();
/*
强类型的好处:
  正确语法的提示补全
  错误语法的错误提示
*/ 
